/**
 * 
 */
package com.lifeware.research.endo.models.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.lifeware.research.endo.models.entities.Patologie;

/**
 * <p>Permette l'accesso ai dati delle patologie utilizzando H8.
 * </p>
 * 
 * @author  Riccardo Cardin, (C) 2012 Lifeware
 * @version 1.0
 */
@Repository
public class PatologieH8Dao extends AbsHibernateDao implements IPatologieDao {

	private static final String FIND_ALL_PATOLOGIE = "findAllPatologie";
	
	@Autowired
	public PatologieH8Dao(SessionFactory sessionFactory) {
		
		super(sessionFactory);
	}

	/* (non-Javadoc)
	 * @see com.lifeware.research.endo.models.dao.IPatologieDao#findAllPatologie()
	 */
	@Override
	public List<Patologie> findAllPatologie() {
				
		/* Recupero la sessione */
		Session session = this.sessionFactory.openSession();
		
		/* Recupero la lista di patologie */
		@SuppressWarnings("unchecked")
		List<Patologie> patologie = 
				session.getNamedQuery(FIND_ALL_PATOLOGIE).list();
		
		/* Chiudo la sessione */
		session.close();
		
		return patologie;
	}

	@Override
	public Patologie findById(Integer id) {
		
		Patologie patologia = null;
		
		/* Recupero la sessione */
		Session session = this.sessionFactory.openSession();
		
		/* Recupero la patologia */
		patologia = (Patologie) session.get(Patologie.class, id);
		
		/* Chiudo la sessione */
		session.close();
		
		return patologia;
	}

}
